package com.sdx.console.ncode.entity;

import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.beetl.sql.core.annotatoin.ColumnIgnore;
import org.beetl.sql.core.annotatoin.AutoID;
import org.beetl.sql.core.annotatoin.SeqID;
import org.apache.commons.lang3.StringUtils;
import com.ibeetl.admin.core.util.ValidateConfig;
import com.sdx.service.ConfigService;

import org.beetl.sql.core.TailBean;
import java.math.*;

import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity;

import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Version;
import org.beetl.sql.core.annotatoin.LogicDelete;
import com.sdx.common.utils.Utils;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

/* 
* 
* gen by Spring Boot2 Admin 2019-11-04
*/
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
@Data
public class RightNcodeBatch extends BaseEntity{

    //批次Id
    @NotNull(message = "ID不能为空", groups =ValidateConfig.UPDATE.class)
    @AutoID	
    private Integer batchId ;

	//租户Id
    private Integer tenantId;

    private Integer provinceId;
	
    //批次名称
    private String batchName ;
	
    //对应权益角色
    private Integer roleId ;
	
    //生成n码数量
    private Integer nCodeNum ;
	
    //n码类型 2、体验卡，4、正式会员卡
    private Integer nType ;
	
    //有效截止期
    private Date expiredDate ;
	
    //有效天数
    private Integer validityDay ;
	
    //说明
    private String remark ;
	
    //生成n码标识 0、未生成   1、已生成
    private Integer status ;
	
    //创建人
    private Integer createdBy ;
	
    //创建人名称
    private String createdName ;
	
    //创建时间
    private Date createdTime ;
	
    //更新人
    private Integer updatedBy ;
	
    //更新人名称
    private String updatedName ;
	
    //更新时间
    private Date updatedTime ;
	
	@ColumnIgnore
	@JsonIgnore
	private String expiredDateQuery;
	@ColumnIgnore
	@JsonIgnore
	private Date expiredDateStart;
	@ColumnIgnore
	@JsonIgnore
	private Date expiredDateEnd;
	public String getExpiredDateQuery(){
		return  expiredDateQuery;
	}
	public void setExpiredDateQuery(String expiredDateQuery ){
		this.expiredDateQuery = expiredDateQuery;
		Date[] timePair = Utils.parseQueryTime(expiredDateQuery);
		if (timePair!=null && timePair[0]!=null) {
			this.expiredDateStart = timePair[0];
		}
		if (timePair!=null && timePair.length==2 && timePair[1]!=null) {
			this.expiredDateEnd = timePair[1];
		}

	}
	public Date getExpiredDateStart(){
		return  expiredDateStart;
	}
	public void setExpiredDateStart(Date expiredDateStart ){
		this.expiredDateStart = expiredDateStart;
	}
	public Date getExpiredDateEnd(){
		return  expiredDateEnd;
	}
	public void setExpiredDateEnd(Date expiredDateEnd ){
		this.expiredDateEnd = expiredDateEnd;
	}

}
